package com.bestcem.xm.txtanls.service;

import com.bestcem.xm.common.core.domain.web.ServiceResult;
import com.bestcem.xm.txtanls.entity.pojo.IndustryKeywordDO;
import com.bestcem.xm.txtanls.grpc.service.param.keyword.ListKeywordParam;
import com.bestcem.xm.txtanls.grpc.service.param.keyword.UpdateKeywordParam;
import com.bestcem.xm.txtanls.service.dto.keyword.ListKeywordDTO;
import com.bestcem.xm.txtanls.service.dto.user.IndustryDTO;

import java.util.Collection;
import java.util.Set;

/**
 * @author liheng
 * @version v1.0
 * @date 2021/5/11-13:58
 */
public interface KeywordService {


    /**
     * 获取关键词的提及量、提及率
     *
     * @param listKeywordParam 文本分析项目id-组织id-字段id-关键词屏蔽状态
     * @return 关键词list以及关键词对应话题信息
     * @author liheng
     * @date 2021/5/13 21:30
     */
    ServiceResult<ListKeywordDTO> listKeyword(ListKeywordParam listKeywordParam);

    /**
     * 修改关键词屏蔽状态
     *
     * @param updateKeywordParam@return serviceResult
     * @author liheng
     * @date 2021/5/13 21:31
     */
    ServiceResult<Object> updateKeyword(UpdateKeywordParam updateKeywordParam);

    /**
     * 根据行业code查询行业关键词list
     *
     * @param industryCode 行业code
     * @return 行业关键词list
     */
    Collection<String> listKeywordByIndustryCode(String industryCode);

    /**
     * 根据行业code查询行业关键词list
     *
     * @param industryCode 行业code
     * @return 行业关键词list
     */
    Collection<String> initIndustryKeywords(String industryCode);


    /**
     * 初始化行业关键词
     *
     * @param orgId    组织id
     * @param industry 组织对应行业信息
     * @return 新增关键词记录信息
     */
    Collection<IndustryKeywordDO> initIndustryKeyword(String orgId, IndustryDTO industry);


    /**
     * 查询行业关键词
     *
     * @param trainModelId 训练模型id
     * @return 行业关键词
     */
    Set<String> listIndustryKeyword(String trainModelId);

    /**
     * 查询屏蔽关键词
     *
     * @param projectId 文本分析项目id
     * @return 屏蔽关键词
     */
    Set<String> listHiddenKeyword(String projectId);

}
